using System;
using System.Linq.Expressions;

namespace FluentBinding.WinForms
{
    /// <summary>
    /// Represent interface for specification dependencies between bindinds
    /// </summary>
    /// <typeparam name="E">Type of the root entity</typeparam>
    /// <typeparam name="P">Type of the property in the data-bound control</typeparam>
    public interface ISupportBindingDependencies<E, P>
    {
        #region Public methods

        IPropertyBinding<E, P> WithAffectedBinding<N>(Expression<Func<E, N>> entityPathExpression)
            where N : class;
        
        IPropertyBinding<E, P> WithEntityPath<N>(Expression<Func<E, N>> entityPathExpression)
            where N : class;

        #endregion
    }
}